#ifndef _FSK_WAVE_H_
#define _FSK_WAVE_H_

#include "../../wave/Wave.h"
#include "../../embeddable/math/EmbeddableMath.h"

/*
	class : FskWave
	desc : Implements simple FSK wave modulation taking in a carrier 
		wave.
*/
class FskWave
{
	private : 
	
	Wave carrier;
	public :
	FskWave(Wave& c) { carrier = c;}
	FskWave(double A, double f, double p){carrier = Wave(A, f, p);}

	double get(unsigned long int time, double value)
	{
		return (carrier.Amplitude * Embeddable::Math::sin(
				(value * carrier.angularFrequency)*time 
				+ carrier.phase));
	}
};


#endif
